home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-2.iso / extra / helpful.zip / xfree86 < prev   
Text File  |  1995-08-21  |  45KB  |  1,229 lines

  1.   The Linux XFree86 HOWTO
  2.   by Matt Welsh, mdw@sunsite.unc.edu
  3.   v3.0, 15 March 1995
  4.  
  5.   This document describes how to obtain, install, and configure version
  6.   3.1.1 of the XFree86 version of the X Window System (X11R6) for Linux
  7.   systems. It is a step-by-step guide to configuring XFree86 on your
  8.   system.
  9.  
  10.   1.  Introduction
  11.  
  12.   The X Window System is a large and powerful (and somewhat complex)
  13.   graphics environment for UNIX systems. The original X Window System
  14.   code was developed at MIT; commercial vendors have since made X the
  15.   industry standard for UNIX platforms. Virtually every UNIX workstation
  16.   in the world runs some variant of the X Window system.
  17.  
  18.   A free port of the MIT X Window System version 11, release 6 (X11R6)
  19.   for 80386/80486/Pentium UNIX systems has been developed by a team of
  20.   programmers originally headed by David Wexelblat (dwex@XFree86.org).
  21.   The release, known as XFree86, is available for System V/386, 386BSD,
  22.   and other x86 UNIX implementations, including Linux. It includes all
  23.   of the required binaries, support files, libraries, and tools.
  24.  
  25.   In this document, we'll give a step-by-step description of how to
  26.   install and configure XFree86 for Linux, but you will have to fill in
  27.   some of the details yourself by reading the documentation released
  28.   with XFree86 itself. (This documentation is discussed below.)
  29.   However, using and customizing the X Window System is far beyond the
  30.   scope of this document---for this purpose you should obtain one of the
  31.   many good books on using the X Window System.
  32.  
  33.  
  34.   2.  Hardware requirements
  35.  
  36.   As of XFree86 version 3.1.1, released in February 1995, the following
  37.   video chipsets are supported. The documentation included with your
  38.   video adaptor should specify the chipset used. If you are in the
  39.   market for a new video card, or are buying a new machine that comes
  40.   with a video card, have the vendor find out exactly what the make,
  41.   model, and chipset of the video card is. This may require the vendor
  42.   to call technical support on your behalf; in general vendors will be
  43.   happy to do this. Many PC hardware vendors will state that the video
  44.   card is a ``standard SVGA card'' which ``should work'' on your system.
  45.   Explain that your software (mention Linux and XFree86!)  does not
  46.   support all video chipsets and that you must have detailed
  47.   information.
  48.  
  49.   You can also determine your videocard chipset by running the
  50.   SuperProbe program included with the XFree86 distribution.  This is
  51.   covered in more detail below.
  52.  
  53.   The following standard SVGA chipsets are supported:
  54.  
  55.   o  Tseng ET3000, ET4000AX, ET4000/W32
  56.  
  57.   o  Western Digital/Paradise PVGA1
  58.  
  59.   o  Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30,
  60.      WD90C31, WD90C33
  61.  
  62.   o  Genoa GVGA
  63.  
  64.   o  Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000,
  65.      TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420
  66.  
  67.   o  ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3,
  68.      68800-6, 68800AX, 68800LX, 88800
  69.  
  70.   o  NCR 77C22, 77C22E, 77C22E+
  71.  
  72.   o  Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428,
  73.      CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225,
  74.      CLGD6235, CLGD6420
  75.  
  76.   o  Compaq AVGA
  77.  
  78.   o  OAK OTI067, OTI077
  79.  
  80.   o  Avance Logic AL2101
  81.  
  82.   o  MX MX68000, MX680010
  83.  
  84.   o  Video 7/Headland Technologies HT216-32
  85.  
  86.   The following SVGA chipsets with accelerated features are also
  87.   supported:
  88.  
  89.   o  8514/A (and true clones)
  90.  
  91.   o  ATI Mach8, Mach32
  92.  
  93.   o  Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429,
  94.      CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235
  95.  
  96.   o  S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964
  97.  
  98.   o  Western Digital WD90C31, WD90C33
  99.  
  100.   o  Weitek P9000
  101.  
  102.   o  IIT AGX-014, AGX-015, AGX-016
  103.  
  104.   o  Tseng ET4000/W32, ET4000/W32i, ET4000/W32p
  105.  
  106.   Video cards using these chipsets are supported on all bus types,
  107.   including VLB and PCI.
  108.  
  109.   All of the above are supported in both 256 color and monochrome modes,
  110.   with the exception of the Avance Logic, MX and Video 7 chipsets, which
  111.   are only supported in 256 color mode. If your video card has enough
  112.   DRAM installed, many of the above chipsets are supported in 16 and 32
  113.   bits-per-pixel mode (specifically, some Mach32, P9000, S3 and Cirrus
  114.   boards). The usual configuration is 8 bits per pixel (that is, 256
  115.   colors).
  116.  
  117.   The monochrome server also supports generic VGA cards, the Hercules
  118.   monochrome card, the Hyundai HGC1280, Sigma LaserView, and Apollo
  119.   monochrome cards. On the Compaq AVGA, only 64k of video memory is
  120.   supported for the monochrome server, and the GVGA has not been tested
  121.   with more than 64k.
  122.  
  123.   This list will undoubtedly expand as time passes. The release notes
  124.   for the current version of XFree86 should contain the complete list of
  125.   supported video chipsets.
  126.  
  127.   One problem faced by the XFree86 developers is that some video card
  128.   manufacturers use non-standard mechanisms for determining clock
  129.   frequencies used to drive the card. Some of these manufacturers either
  130.   don't release specifications describing how to program the card, or
  131.   they require developers to sign a non-disclosure statement to obtain
  132.   the information. This would obviously restrict the free distribution
  133.   of the XFree86 software, something that the XFree86 development team
  134.   is not willing to do. For a long time, this has been a problem with
  135.   certain video cards manufactured by Diamond, but as of release 3.1 of
  136.   XFree86, Diamond has started to work with the development team to
  137.   release free drivers for these cards.
  138.  
  139.   The suggested setup for XFree86 under Linux is a 486 machine with at
  140.   least 8 megabytes of RAM, and a video card with a chipset listed
  141.   above. For optimal performance, we suggest using an accelerated card,
  142.   such as an S3-chipset card. You should check the documentation for
  143.   XFree86 and verify that your particular card is supported before
  144.   taking the plunge and purchasing expensive hardware. Benchmark ratings
  145.   comparisons for various video cards under XFree86 are posted routinely
  146.   to the USENET newsgroups comp.windows.x.i386unix and comp.os.linux.x.
  147.  
  148.   As a side note, my personal Linux system is a 486DX2-66, 20 megabytes
  149.   of RAM, and is equipped with a VLB S3-864 chipset card with 2
  150.   megabytes of DRAM.  I have run X benchmarks on this machine as well as
  151.   on Sun Sparc IPX workstations. The Linux system is roughly 7 times
  152.   faster than the Sparc IPX (for the curious, XFree86-3.1 under Linux,
  153.   with this video card, runs at around 171,000 xstones; the Sparc IPX at
  154.   around 24,000). In general, XFree86 on a Linux system with an
  155.   accelerated SVGA card will give you much greater performance than that
  156.   found on commercial UNIX workstations (which usually employ simple
  157.   framebuffers for graphics).
  158.  
  159.   Your machine will need at least 4 megabytes of physical RAM, and 16
  160.   megabytes of virtual RAM (for example, 8 megs physical and 8 megs
  161.   swap).  Remember that the more physical RAM that you have, the less
  162.   that the system will swap to and from disk when memory is low. Because
  163.   swapping is inherently slow (disks are very slow compared to memory),
  164.   having 8 megabytes of RAM or more is necessary to run XFree86
  165.   comfortably.  A system with 4 megabytes of physical RAM could run much
  166.   (up to 10 times) more slowly than one with 8 megs or more.
  167.  
  168.  
  169.   3.  Installing XFree86
  170.  
  171.   The Linux binary distribution of XFree86 can be found on a number of
  172.   FTP sites. On sunsite.unc.edu, it is found in the directory
  173.   /pub/Linux/X11. (As of the time of this writing, the current version
  174.   is 3.1.1; newer versions are released periodically).
  175.  
  176.   It's quite likely that you obtained XFree86 as part of a Linux
  177.   distribution, in which case downloading the software separately is not
  178.   necessary.
  179.  
  180.   If you are downloading XFree86 directly, This table lists the files in
  181.   the XFree86-3.1 distribution.
  182.  
  183.   One of the following servers is required:
  184.  
  185.      XF86-3.1.1-8514.tar.gz
  186.         Server for 8514-based boards.
  187.  
  188.      XF86-3.1.1-AGX.tar.gz
  189.         Server for AGX-based boards.
  190.  
  191.      XF86-3.1.1-Mach32.tar.gz
  192.         Server for Mach32-based boards.
  193.  
  194.      XF86-3.1.1-Mach8.tar.gz
  195.         Server for Mach8-based boards.
  196.  
  197.      XF86-3.1.1-Mono.tar.gz
  198.         Server for monochrome video modes.
  199.      XF86-3.1.1-P9000.tar.gz
  200.         Server for P9000-based boards.
  201.  
  202.      XF86-3.1.1-S3.tar.gz
  203.         Server for S3-based boards.
  204.  
  205.      XF86-3.1.1-SVGA.tar.gz
  206.         Server for Super VGA-based boards.
  207.  
  208.      XF86-3.1.1-VGA16.tar.gz
  209.         Server for VGA/EGA-based boards.
  210.  
  211.      XF86-3.1.1-W32.tar.gz
  212.         Server for ET4000/W32-based boards.
  213.  
  214.   All of the following files are required:
  215.  
  216.      XF86-3.1.1-bin.tar.gz
  217.         The rest of the X11R6 binaries.
  218.  
  219.      XF86-3.1.1-cfg.tar.gz
  220.         Config files for xdm, xinit and fs.
  221.  
  222.      XF86-3.1.1-doc.tar.gz
  223.         Documentation and manpages.
  224.  
  225.      XF86-3.1.1-inc.tar.gz
  226.         Include files.
  227.  
  228.      XF86-3.1.1-lib.tar.gz
  229.         Shared X libraries and support files.
  230.  
  231.      XF86-3.1-fnt.tar.gz
  232.         Basic fonts.
  233.  
  234.   The following files are optional:
  235.  
  236.      XF86-3.1-ctrb.tar.gz
  237.         Selected contrib programs.
  238.  
  239.      XF86-3.1-extra.tar.gz
  240.         Extra XFree86 servers and binaries.
  241.  
  242.      XF86-3.1-lkit.tar.gz
  243.         Server linkkit for customization.
  244.  
  245.      XF86-3.1-fnt75.tar.gz
  246.         75-dpi screen fonts.
  247.  
  248.      XF86-3.1-fnt100.tar.gz
  249.         100-dpi screen fonts.
  250.  
  251.      XF86-3.1-fntbig.tar.gz
  252.         Large Kanji and other fonts.
  253.  
  254.      XF86-3.1-fntscl.tar.gz
  255.         Scaled fonts (Speedo, Type1).
  256.  
  257.      XF86-3.1-man.tar.gz
  258.         Manual pages.
  259.  
  260.      XF86-3.1-pex.tar.gz
  261.         PEX binaries, includes and libraries.
  262.  
  263.      XF86-3.1-slib.tar.gz
  264.         Static X libraries and support files.
  265.      XF86-3.1-usrbin.tar.gz
  266.         Daemons which reside in /usr/bin.
  267.  
  268.      XF86-3.1-xdmshdw.tar.gz
  269.         Shadow password version of xdm.
  270.  
  271.   The XFree86 directory should contain README files and installation
  272.   notes for the current version.
  273.  
  274.   All that is required to install XFree86 is to obtain the above files,
  275.   create the directory /usr/X11R6 (as root), and unpack the files from
  276.   /usr/X11R6 with a command such as:
  277.  
  278.  
  279.        gzip -dc XF86-3.1.1-bin.tar.gz | tar xfB -
  280.  
  281.  
  282.  
  283.  
  284.   Remember that these tar files are packed relative to /usr/X11R6.  so
  285.   it's important to unpack the files there.
  286.  
  287.   After unpacking the files, you first need to link the file
  288.   /usr/X11R6/bin/X to the server that you're using. For example, if you
  289.   wish to use the SVGA color server, /usr/bin/X11/X should be linked to
  290.   /usr/X11R6/bin/XF86_SVGA. If you wish to use the monochrome server
  291.   instead, relink this file to XF86_MONO with the command
  292.  
  293.  
  294.        ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X
  295.  
  296.  
  297.  
  298.  
  299.   The same holds true if you are using one of the other servers.
  300.  
  301.   If you aren't sure which server to use, or don't know your video card
  302.   chipset, you can run the SuperProbe program found in /usr/X11R6/bin
  303.   (included in the XF86-3.1-bin listed above).  This program will
  304.   attempt to determine your video chipset type and other information;
  305.   write down its output for later reference.
  306.  
  307.   You need to make sure that /usr/X11R6/bin is on your path.  This can
  308.   be done by editing your system default /etc/profile or /etc/csh.login
  309.   (based on the shell that you, or other users on your system, use). Or
  310.   you can simply add the directory to your personal path by modifying
  311.   /etc/.bashrc or /etc/.cshrc, based on your shell.
  312.  
  313.   You also need to make sure that /usr/X11R6/lib can be located by
  314.   ld.so, the runtime linker. To do this, add the line
  315.  
  316.  
  317.        /usr/X11R6/lib
  318.  
  319.  
  320.  
  321.  
  322.   to the file /etc/ld.so.conf, and run /sbin/ldconfig, as root.
  323.  
  324.  
  325.   4.  Configuring XFree86
  326.  
  327.   Setting up XFree86 is not difficult in most cases. However, if you
  328.   happen to be using hardware for which drivers ar under development, or
  329.   wish to obtain the best performance or resolution from an accelerated
  330.   graphics card, configuring XFree86 can be somewhat time-consuming.
  331.   In this section we will describe how to create and edit the XF86Config
  332.   file, which configures the XFree86 server. In many cases it is best to
  333.   start out with a ``basic'' XFree86 configuration, one which uses a low
  334.   resolution, such as 640x480, which should be supported on all video
  335.   cards and monitor types. Once you have XFree86 working at a lower,
  336.   standard resolution, you can tweak the configuration to exploit the
  337.   capabilities of your video hardware. The idea is that you want to know
  338.   that XFree86 works at all on your system, and that something isn't
  339.   wrong with your installation, before attempting the sometimes
  340.   difficult task of setting up XFree86 for real use.
  341.  
  342.   In addition to the information listed here, you should read the
  343.   following documentation:
  344.  
  345.   o  The XFree86 documentation in /usr/X11R6/lib/X11/doc (contained
  346.      within the XFree86-3.1-doc package). You should especially see the
  347.      file README.Config, which is an XFree86 configuration tutorial.
  348.  
  349.   o  Several video chipsets have separate README files in the above
  350.      directory (such as README.Cirrus and README.S3).  Read one of these
  351.      if applicable.
  352.  
  353.   o  The man page for XFree86.
  354.  
  355.   o  The man page for XF86Config.
  356.  
  357.   o  The man page for the particular server that you are using (such as
  358.      XF86_SVGA or XF86_S3).
  359.  
  360.   The main XFree86 configuration file is /usr/X11R6/lib/X11/XF86Config.
  361.   This file contains information on your mouse, video card parameters,
  362.   and so on. The file XF86Config.eg is provided with the XFree86
  363.   distribution as an example. Copy this file to XF86Config and edit it
  364.   as a starting point.
  365.  
  366.   The XF86Config man page explains the format of this file in detail.
  367.   Read this man page now, if you have not done so already.
  368.  
  369.   We are going to present a sample XF86Config file, piece by piece.
  370.   This file may not look exactly like the sample file included in the
  371.   XFree86 distribution, but the structure is the same.
  372.  
  373.   Note that the XF86Config file format may change with each version of
  374.   XFree86; this information is only valid for XFree86 version 3.1.
  375.  
  376.   Also, you should not simply copy the configuration file listed here to
  377.   your own system and attempt to use it. Attempting to use a
  378.   configuration file which doesn't correspond to your hardware could
  379.   drive the monitor at a frequency which is too high for it; there have
  380.   been reports of monitors (especially fixed-frequency monitors) being
  381.   damaged or destroyed by using an incorrectly configured XF86Config
  382.   file. The bottom line is this: Make absolutely sure that your
  383.   XF86Config file corresponds to your hardware before you attempt to use
  384.   it.
  385.  
  386.   Each section of the XF86Config file is surrounded by the pair of lines
  387.  
  388.  
  389.        Section "section-name"
  390.          ...
  391.        EndSection
  392.  
  393.  
  394.  
  395.  
  396.   The first part of the XF86Config file is Files, which looks like this:
  397.        Section "Files"
  398.            RgbPath     "/usr/X11R6/lib/X11/rgb"
  399.            FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
  400.            FontPath    "/usr/X11R6/lib/X11/fonts/75dpi/"
  401.        EndSection
  402.  
  403.  
  404.  
  405.  
  406.   The RgbPath line sets the path to the X11R6 RGB color database, and
  407.   each FontPath line sets the path to a directory containing X11 fonts.
  408.   In general you shouldn't have to modify these lines; just be sure that
  409.   there is a FontPath entry for each font type that you have installed
  410.   (that is, for each directory in /usr/X11R6/lib/X11/fonts).
  411.  
  412.   The next section is ServerFlags, which specifies several global flags
  413.   for the server. In general this section is empty.
  414.  
  415.  
  416.        Section "ServerFlags"
  417.        # Uncomment this to cause a core dump at the spot where a signal is
  418.        # received.  This may leave the console in an unusable state, but may
  419.        # provide a better stack trace in the core dump to aid in debugging
  420.        #    NoTrapSignals
  421.  
  422.        # Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
  423.        #    DontZap
  424.        EndSection
  425.  
  426.  
  427.  
  428.  
  429.   Here, we have all lines within the section commented out.
  430.  
  431.   The next section is Keyboard. This should be fairly intuitive.
  432.  
  433.  
  434.        Section "Keyboard"
  435.            Protocol    "Standard"
  436.            AutoRepeat  500 5
  437.            ServerNumLock
  438.        EndSection
  439.  
  440.  
  441.  
  442.  
  443.   Other options are available as well---see the XF86Config file if you
  444.   wish to modify the keyboard configuration. The above should work for
  445.   most systems.
  446.  
  447.   The next section is Pointer which specifies parameters for the mouse
  448.   device.
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.   Section "Pointer"
  464.  
  465.       Protocol    "MouseSystems"
  466.       Device      "/dev/mouse"
  467.  
  468.   # Baudrate and SampleRate are only for some Logitech mice
  469.   #    BaudRate   9600
  470.   #    SampleRate 150
  471.  
  472.   # Emulate3Buttons is an option for 2-button Microsoft mice
  473.   #    Emulate3Buttons
  474.  
  475.   # ChordMiddle is an option for some 3-button Logitech mice
  476.   #    ChordMiddle
  477.  
  478.   EndSection
  479.  
  480.  
  481.  
  482.  
  483.   The only options that you should concern yourself with now are Proto-
  484.   col and Device. Protocol specifies the mouse protocol that your mouse
  485.   uses (not the make or brand of mouse). Valid types for Protocol (under
  486.   Linux---there are other options available for other operating systems)
  487.   are:
  488.  
  489.   o  BusMouse
  490.  
  491.   o  Logitech
  492.  
  493.   o  Microsoft
  494.  
  495.   o  MMSeries
  496.  
  497.   o  Mouseman
  498.  
  499.   o  MouseSystems
  500.  
  501.   o  PS/2
  502.  
  503.   o  MMHitTab
  504.  
  505.      BusMouse should be used for the Logitech busmouse. Note that older
  506.      Logitech mice should use Logitech, but newer Logitech mice use
  507.      either Microsoft or Mouseman protocols.  This is a case in which
  508.      the protocol doesn't necessarily have anything to do with the make
  509.      of the mouse.
  510.  
  511.   Device specifies the device file where the mouse can be accessed. On
  512.   most Linux systems, this is /dev/mouse.  /dev/mouse is usually a link
  513.   to the appropriate serial port (such as /dev/cua0) for serial mice, or
  514.   to the appropriate busmouse device for busmice. At any rate, be sure
  515.   that the device file listed in Device exists.
  516.  
  517.   The next section is Monitor, which specifies the characteristics of
  518.   your monitor. As with other sections in the XF86Config file, there may
  519.   be more than one Monitor section. This is useful if you have multiple
  520.   monitors connected to a system, or use the same XF86Config file under
  521.   multiple hardware configurations.  In general, though, you will need a
  522.   single Monitor section.
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.   Section "Monitor"
  530.  
  531.       Identifier  "CTX 5468 NI"
  532.  
  533.       # These values are for a CTX 5468NI only! Don't attempt to use
  534.       # them with your monitor (unless you have this model)
  535.  
  536.       Bandwidth    60
  537.       HorizSync    30-38,47-50
  538.       VertRefresh  50-90
  539.  
  540.       # Modes: Name      dotclock  horiz                vert
  541.  
  542.       ModeLine "640x480"  25       640 664 760 800      480 491 493 525
  543.       ModeLine "800x600"  36       800 824 896 1024     600 601 603 625
  544.       ModeLine "1024x768" 65       1024 1088 1200 1328  768 783 789 818
  545.  
  546.   EndSection
  547.  
  548.  
  549.  
  550.  
  551.   The Identifier line is used to give an arbitrary name to the Monitor
  552.   entry. This can be any string; you will use it to refer to the Monitor
  553.   entry later in the XF86Config file.
  554.  
  555.   they are listed below.
  556.  
  557.   HorizSync specifies the valid horizontal sync frequencies for your
  558.   monitor, in kHz. If you have a multisync monitor, this can be a range
  559.   of values (or several comma-separated ranges), as seen above.  If you
  560.   have a fixed-frequency monitor, this will be a list of discrete
  561.   values, such as:
  562.  
  563.  
  564.            HorizSync    31.5, 35.2, 37.9, 35.5, 48.95
  565.  
  566.  
  567.  
  568.  
  569.   Your monitor manual should list these values in the technical specifi-
  570.   cations section. If you do not have this information available, you
  571.   should either contact the manufacturer or vendor of your monitor to
  572.   obtain it. There are other sources of information, as well;
  573.  
  574.   VertRefresh specifies the valid vertical refresh rates (or vertical
  575.   synchronization frequencies) for your monitor, in Hz.  Like HorizSync
  576.   this can be a range or a list of discrete values; your monitor manual
  577.   should list them.
  578.  
  579.   HorizSync and VertRefresh are used only to double-check that the
  580.   monitor resolutions that you specify are in valid ranges. This is to
  581.   reduce the chance that you will damage your monitor by attempting to
  582.   drive it at a frequency for which it was not designed.
  583.  
  584.   The ModeLine directive is used to specify a single resolution mode for
  585.   your monitor. The format of ModeLine is
  586.  
  587.  
  588.        ModeLine name clock horiz-values vert-values
  589.  
  590.  
  591.  
  592.  
  593.   name is an arbitrary string, which you will use to refer to the reso-
  594.   lution mode later in the file. dot-clock is the driving clock
  595.   frequency, or ``dot clock'' associated with the resolution mode.  A
  596.   dot clock is usually specified in MHz, and is the rate at which the
  597.   video card must send pixels to the monitor at this resolution.  horiz-
  598.   values and vert-values are four numbers each which specify when the
  599.   electron gun of the monitor should fire, and when the horizontal and
  600.   vertical sync pulses fire during a sweep.
  601.  
  602.   How can you determine the ModeLine values for your monitor?  The file
  603.   VideoModes.doc, included with the XFree86 distribution, describes in
  604.   detail how to determine these values for each resolution mode that
  605.   your monitor supports. First of all, clock must correspond to one of
  606.   the dot clock values that your video card can produce. Later in the
  607.   XF86Config file you will specify these clocks; you can only use video
  608.   modes which have a clock value supported by your video card.
  609.  
  610.   There are two files included in the XFree86 distribution which may
  611.   include ModeLine data for your monitor. These files are modeDB.txt and
  612.   Monitors, both of which are found in /usr/X11R6/lib/X11/doc.
  613.  
  614.   You should start with ModeLine values for the VESA standard monitor
  615.   timings, which most monitors support. modeDB.txt includes timing
  616.   values for VESA standard resolutions. In that file, you will see
  617.   entries such as
  618.  
  619.  
  620.        # 640x480@60Hz Non-Interlaced mode
  621.        # Horizontal Sync = 31.5kHz
  622.        # Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
  623.        #
  624.        # name        clock   horizontal timing     vertical timing      flags
  625.         "640x480"     25.175  640  664  760  800    480  491  493  525
  626.  
  627.  
  628.  
  629.  
  630.   This is a VESA standard timing for a 640x480 video mode. It uses a dot
  631.   clock of 25.175, which your video card must support to use this mode
  632.   (more on this later). To include this entry in the XF86Config file,
  633.   you'd use the line
  634.  
  635.  
  636.        ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
  637.  
  638.  
  639.  
  640.  
  641.   Note that the name argument to ModeLine (in this case "640x480") is an
  642.   arbitrary string---the convention is to name the mode after the reso-
  643.   lution, but name can technically be anything descriptive which
  644.   describes the mode to you.
  645.  
  646.   For each ModeLine used the server will check that the specifications
  647.   for the mode fall within the range of values specified with Bandwidth,
  648.   HorizSync and VertRefresh. If they do not, the server will complain
  649.   when you attempt to start up X (more on this later). For one thing,
  650.   the dot clock used by the mode should not be greater than the value
  651.   used for Bandwidth. (However, in many cases it is safe to use modes
  652.   with a slightly higher bandwidth than your monitor can support.)
  653.  
  654.   If the VESA standard timings do not work for you (you'll know after
  655.   trying to use them later) then the files modeDB.txt and Monitors
  656.   include specific mode values for many monitor types.  You can create
  657.   ModeLine entries from the values found in those two files as well. Be
  658.   sure to only use values for the specific model of monitor that you
  659.   have. Note that many 14 and 15-inch monitors cannot support higher
  660.   resolution modes, and often resolutions of 1024x768 at low dot clocks.
  661.   This means that if you can't find high resolution modes for your
  662.   monitor in these files, then your monitor probably does not support
  663.   those resolution modes.
  664.  
  665.   If you are completely at a loss, and can't find working ModeLine
  666.   values for your monitor, you can follow the instructions in the
  667.   VideoModes.doc file included in the XFree86 distribution to generate
  668.   ModeLine values from the specifications listed in your monitor's
  669.   manual. While your mileage will certainly vary when attempting to
  670.   generate ModeLine values by hand, this is a good place to look if you
  671.   can't find the values that you need. VideoModes.doc also describes the
  672.   format of the ModeLine directive and other aspects of the XFree86
  673.   server in gory detail.
  674.  
  675.   Lastly, if you do obtain ModeLine values which are almost, but not
  676.   quite, right, then it may be possible to simply modify the values
  677.   slightly to obtain the desired result. For example, if while running
  678.   XFree86 the image on the monitor is shifted slightly, or seems to
  679.   ``roll'', you can follow the instructions in the VideoModes.doc file
  680.   to try to fix these values. Also, be sure to check the knobs and
  681.   controls on the monitor itself! In many cases it is necessary to
  682.   change the horizontal or vertical size of the display after starting
  683.   up XFree86 in order for the image to be centered and be of the
  684.   appropriate size. Having these controls on the front of the monitor
  685.   can certainly make life easier.
  686.  
  687.   You shouldn't use monitor timing values or ModeLine values for
  688.   monitors other than the model that you own. If you attempt to drive
  689.   the monitor at a frequency for which it was not designed, you can
  690.   damage or even destroy it.
  691.  
  692.   The next section of the XF86Config file is Device, which specifies
  693.   parameters for your video card. Here is an example.
  694.  
  695.  
  696.        Section "Device"
  697.                Identifier "#9 GXE 64"
  698.  
  699.                # Nothing yet; we fill in these values later.
  700.  
  701.        EndSection
  702.  
  703.  
  704.  
  705.  
  706.   This section defines properties for a particular video card.
  707.   Identifier is an arbitrary string describing the card; you will use
  708.   this string to refer to the card later.
  709.  
  710.   Initially, you don't need to include anything in the Device section,
  711.   except for Identifier. This is because we will be using the X server
  712.   itself to probe for the properties of the video card, and entering
  713.   them into the Device section later.  The XFree86 server is capable of
  714.   probing for the video chipset, clocks, RAMDAC, and amount of video RAM
  715.   on the board.
  716.  
  717.   Before we do this, however, we need to finish writing the XF86Config
  718.   file. The next section is Screen, which specifies the monitor/video
  719.   card combination to use for a particular server.
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.    Section "Screen"
  728.        Driver     "Accel"
  729.        Device     "#9 GXE 64"
  730.        Monitor    "CTX 5468 NI"
  731.        Subsection "Display"
  732.            Depth      16
  733.            Modes      "1024x768" "800x600" "640x480"
  734.            ViewPort   0 0
  735.            Virtual    1024 768
  736.        EndSubsection
  737.    EndSection
  738.  
  739.  
  740.  
  741.  
  742.   The Driver line specifies the X server that you will be using.  The
  743.   value values for Driver are:
  744.  
  745.   o  Accel: For the XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514,
  746.      XF86_P9000, XF86_AGX, and XF86_W32 servers;
  747.  
  748.   o  SVGA: For the XF86_SVGA server;
  749.  
  750.   o  VGA16: For the XF86_VGA16 server;
  751.  
  752.   o  VGA2: For the XF86_Mono server;
  753.  
  754.   o  Mono: For the non-VGA monochrome drivers in the XF86_Mono and
  755.      XF86_VGA16 servers.
  756.  
  757.      You should be sure that /usr/X11R6/bin/X is a symbolic link to the
  758.      server that you are using.
  759.  
  760.   The Device line specifies the Identifier of the Device section
  761.   corresponding to the video card to use for this server.  Above, we
  762.   created a Device section with the line
  763.  
  764.  
  765.        Identifier "#9 GXE 64"
  766.  
  767.  
  768.  
  769.  
  770.   Therefore, we use "#9 GXE 64" on the Device line here.
  771.  
  772.   Similarly, the Monitor line specifies the name of the Monitor section
  773.   to be used with this server. Here, "CTX 5468 NI" is the Identifier
  774.   used in the Monitor section described above.
  775.  
  776.   Subsection "Display" defines several properties of the XFree86 server
  777.   corresponding to your monitor/video card combination.  The XF86Config
  778.   file describes all of these options in detail; most of them are icing
  779.   on the cake and not necessary to get the system working.
  780.  
  781.   The options that you should know about are:
  782.  
  783.   o  Depth. Defines the number of color planes---the number of bits per
  784.      pixel. Usually, Depth is set to 8. For the VGA16 server, you would
  785.      use a depth of 4, and for the monochrome server a depth of 1. If
  786.      you are using an accelerated video card with enough memory to
  787.      support more bits per pixel, you can set Depth to 16, 24, or 32.
  788.      If you have problems with depths higher than 8, set it back to 8
  789.      and attempt to debug the problem later.
  790.  
  791.   o  Modes. This is the list of video mode names which have been defined
  792.      using the ModeLine directive in the Monitor section. In the above
  793.      section, we used ModeLines named "1024x768", "800x600", and
  794.      "640x480".  Therefore, we use a Modes line of
  795.  
  796.  
  797.                 Modes    "1024x768" "800x600" "640x480"
  798.  
  799.  
  800.  
  801.  
  802.   The first mode listed on this line will be the default when XFree86
  803.   starts up. After XFree86 is running, you can switch between the modes
  804.   listed here using the keys ctrl-alt-numeric + and ctrl-alt-numeric -.
  805.  
  806.   It might be best, when initially configuring XFree86, to use lower
  807.   resolution video modes, such as 640x480, which tend to work on most
  808.   systems. Once you have the basic configuration working you can modify
  809.   XF86Config to support higher resolutions.
  810.  
  811.   o  Virtual. Sets the virtual desktop size. XFree86 has the ability to
  812.      use any additional memory on your video card to extend the size of
  813.      your desktop. When you move the mouse pointer to the edge of the
  814.      display, the desktop will scroll, bringing the additional space
  815.      into view. Therefore, even if you are running at a lower video
  816.      resolution such as 800x600, you can set Virtual to the total
  817.      resolution which your video card can support (a 1-megabyte video
  818.      card can support 1024x768 at a depth of 8 bits per pixel; a
  819.      2-megabyte card 1280x1024 at depth 8, or 1024x768 at depth 16).  Of
  820.      course, the entire area will not be visible at once, but it can
  821.      still be used.
  822.  
  823.      The Virtual feature is a nice way to utilize the memory of your
  824.      video card, but it is rather limited. If you want to use a true
  825.      virtual desktop, we suggest using fvwm, or a similar window
  826.      manager, instead. fvwm allows you to have rather large virtual
  827.      desktops (implemented by hiding windows, and so forth, instead of
  828.      actually storing the entire desktop in video memory at once). See
  829.      the man pages for fvwm for more details about this; most Linux
  830.      systems use fvwm by default.
  831.  
  832.   o  ViewPort. If you are using the Virtual option described above,
  833.      ViewPort sets the coordinates of the upper-left-hand corner of the
  834.      virtual desktop when XFree86 starts up. Virtual 0 0 is often used;
  835.      if this is unspecified then the desktop is centered on the virtual
  836.      desktop display (which may be undesirable to you).
  837.  
  838.   Many other options for this section exist; see the XF86Config man page
  839.   for a complete description. In practice these other options are not
  840.   necessary to get XFree86 initially working.
  841.  
  842.  
  843.   5.  Filling in video card information
  844.  
  845.   Your XF86Config file is now ready to go, with the exception of
  846.   complete information on the video card. What we're going to do is use
  847.   the X server to probe for the rest of this information, and fill it
  848.   into XF86Config.
  849.  
  850.   Instead of probing for this information with the X server, the
  851.   XF86Config values for many cards are listed in the files modeDB.txt,
  852.   AccelCards, and Devices. These files are all found in
  853.   /usr/X11R6/lib/X11/doc. In addition, there are various README files
  854.   for certain chipsets. You should look in these files for information
  855.   on your video card, and use that information (the clock values,
  856.   chipset type, and any options) in the XF86Config file. If any
  857.   information is missing, you can probe for it as described here.
  858.  
  859.   In these examples we will demonstrate configuration for a #9 GXE 64
  860.   video card, which uses the XF86_S3 chipset.  This card happens to be
  861.   the one which the author uses, but the discussion here applies to any
  862.   video card.
  863.  
  864.   The first thing to do is to determine the video chipset used on the
  865.   card.  Running SuperProbe (found in /usr/X11R6/bin) will tell you this
  866.   information, but you need to know the chipset name as it is known to
  867.   the X server.
  868.  
  869.   To do this, run the command
  870.  
  871.        X -showconfig
  872.  
  873.  
  874.   This will give the chipset names known to your X server. (The man
  875.   pages for each X server list these as well.)  For example, with the
  876.   accelerated XF86_S3 server, we obtain:
  877.  
  878.  
  879.        XFree86 Version 3.1 / X Window System
  880.        (protocol Version 11, revision 0, vendor release 6000)
  881.        Operating System: Linux
  882.        Configured drivers:
  883.          S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
  884.              mmio_928, s3_generic
  885.  
  886.  
  887.  
  888.  
  889.   The valid chipset names for this server are mmio_928 and s3_generic.
  890.   The XF86_S3 man page describes these chipsets and which videocards use
  891.   them. In the case of the #9 GXE 64 video card, mmio_928 is
  892.   appropriate.
  893.  
  894.   If you don't know which chipset to use, the X server can probe it for
  895.   you. To do this, run the command
  896.  
  897.  
  898.        X -probeonly > /tmp/x.out 2>&1
  899.  
  900.  
  901.  
  902.  
  903.   if you use bash as your shell. If you use csh, try:
  904.  
  905.  
  906.        X -probeonly &> /tmp/x.out
  907.  
  908.  
  909.  
  910.  
  911.   You should run this command while the system is unloaded, that is,
  912.   while no other activity is occurring on the system. This command will
  913.   also probe for your video card dot clocks (as seen below), and system
  914.   load can throw off this calculation.
  915.  
  916.   The output from the above (in /tmp/x.out should contain lines such as
  917.   the following:
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.   XFree86 Version 3.1 / X Window System
  926.   (protocol Version 11, revision 0, vendor release 6000)
  927.   Operating System: Linux
  928.   Configured drivers:
  929.     S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
  930.         mmio_928, s3_generic
  931.      ...
  932.   (--) S3: card type: 386/486 localbus
  933.   (--) S3: chipset:   864 rev. 0
  934.   (--) S3: chipset driver: mmio_928
  935.  
  936.  
  937.  
  938.  
  939.   Here, we see that the two valid chipsets for this server (in this
  940.   case, XF86_S3) are mmio_928 and s3_generic. The server probed for and
  941.   found a video card using the mmio_928 chipset.
  942.  
  943.   In the Device section of the XF86Config file, add a Chipset line,
  944.   containing the name of the chipset as determined above. For example,
  945.  
  946.  
  947.        Section "Device"
  948.                # We already had Identifier here...
  949.                Identifier "#9 GXE 64"
  950.                # Add this line:
  951.                Chipset "mmio_928"
  952.        EndSection
  953.  
  954.  
  955.  
  956.  
  957.   Now we need to determine the driving clock frequencies used by the
  958.   video card.  A driving clock frequency, or dot clock, is simply a rate
  959.   at which the video card can send pixels to the monitor. As we have
  960.   seen, each monitor resolution has a dot clock associated with it. Now
  961.   we need to determine which dot clocks are made available by the video
  962.   card.
  963.  
  964.   First you should look into the files (modeDB.txt, and so forth)
  965.   mentioned above and see if your card's clocks are listed there.  The
  966.   dot clocks will usually be a list of 8 or 16 values, all of which are
  967.   in MHz. For example, when looking at modeDB.txt we see an entry for
  968.   the Cardinal ET4000 video board, which looks like this:
  969.  
  970.  
  971.        # chip    ram   virtual   clocks                           default-mode  flags
  972.         ET4000   1024  1024 768   25  28  38  36  40  45  32   0  "1024x768"
  973.  
  974.  
  975.  
  976.  
  977.   As we can see, the dot clocks for this card are 25, 28, 38, 36, 40,
  978.   45, 32, and 0 MHz.
  979.  
  980.   In the Devices section of the XF86Config file, you should add a Clocks
  981.   line containing the list of dot clocks for your card.  For example,
  982.   for the clocks above, we would add the line
  983.  
  984.  
  985.                Clocks 25 28 38 36 40 45 32 0
  986.  
  987.  
  988.  
  989.  
  990.   to the Devices section of the file, after Chipset.  Note that the
  991.   order of the clocks is important! Don't resort the list of clocks or
  992.   remove duplicates.
  993.  
  994.   If you cannot find the dot clocks associated with your card, the X
  995.   server can probe for these as well. Using the X -probeonly command
  996.   described above, the output should contain lines which look like the
  997.   following:
  998.  
  999.  
  1000.        (--) S3: clocks:  25.18  28.32  38.02  36.15  40.33  45.32  32.00  00.00
  1001.  
  1002.  
  1003.  
  1004.  
  1005.   We could then add a Clocks line containing all of these values, as
  1006.   printed. You can use more than one Clocks line in XF86Config should
  1007.   all of the values (sometimes there are more than 8 clock values
  1008.   printed) not fit onto one line. Again, be sure to keep the list of
  1009.   clocks in order as they are printed.
  1010.  
  1011.   Be sure that there is no Clocks line (or that it is commented out) in
  1012.   the Devices section of the file when using X -probeonly to probe for
  1013.   the clocks. If there is a Clocks line present, the server will not
  1014.   probe for the clocks---it will use the values given in XF86Config.
  1015.  
  1016.   Note that some accelerated video boards use a programmable clock chip.
  1017.   (See the XF86_Accel man page for details; this generally applies to
  1018.   S3, AGX, and XGA-2 boards.)  This chip essentially allows the X server
  1019.   to tell the card which dot clocks to use. If this is the case, then
  1020.   you may not find a list of dot clocks for the card in any of the above
  1021.   files. Or, the list of dot clocks printed when using X -probeonly will
  1022.   only contain one or two discrete clock values, with the rest being
  1023.   duplicates or zero.
  1024.  
  1025.   For boards which use a programmable clock chip, you would use a
  1026.   ClockChip line, instead of a Clocks line, in your XF86Config file.
  1027.   ClockChip gives the name of the clock chip as used by the video card;
  1028.   the man pages for each server describe what these are. For example, in
  1029.   the file README.S3, we see that several S3-864 video cards use an
  1030.   ``ICD2061A'' clock chip, and that we should use the line
  1031.  
  1032.  
  1033.           ClockChip "icd2061a"
  1034.  
  1035.  
  1036.  
  1037.  
  1038.   instead of Clocks in the XF86Config file. As with Clocks, this line
  1039.   should go in the Devices section, after Chipset.
  1040.  
  1041.   Similarly, some accelerated cards require you to specify the RAMDAC
  1042.   chip type in the XF86Config file, using a Ramdac line.  The XF86_Accel
  1043.   man page describes this option. Usually, the X server will correctly
  1044.   probe for the RAMDAC.
  1045.  
  1046.   Some video card types require you to specify several options in the
  1047.   Devices section of XF86Config. These options will be described in the
  1048.   man page for your server, as well as in the various files (such as
  1049.   README.cirrus or README.S3. These options are enabled using the Option
  1050.   line. For example, the #9 GXE 64 card requires two options:
  1051.  
  1052.  
  1053.                Option "number_nine"
  1054.                Option "dac_8_bit"
  1055.  
  1056.  
  1057.   Usually, the X server will work without these options, but they are
  1058.   necessary to obtain the best performance. There are too many such
  1059.   options to list here, and they each depend on the particular video
  1060.   card being used. If you must use one of these options, fear not---the
  1061.   X server man pages and various files in /usr/X11R6/lib/X11/doc will
  1062.   tell you what they are.
  1063.  
  1064.   So, when you're finished, you should end up with a Devices section
  1065.   which looks something like this:
  1066.  
  1067.  
  1068.        Section "Device"
  1069.                # Device section for the #9 GXE 64 only!
  1070.                Identifier "#9 GXE 64"
  1071.                Chipset "mmio_928"
  1072.                ClockChip "icd2061a"
  1073.                Option "number_nine"
  1074.                Option "dac_8_bit"
  1075.        EndSection
  1076.  
  1077.  
  1078.  
  1079.  
  1080.   Most video cards will require a Clocks line, instead of ClockChip, as
  1081.   described above. The above Device entry is only valid for a particular
  1082.   video card, the #9 GXE 64. It is given here only as an example.
  1083.  
  1084.   There are other options that you can include in the Devices entry.
  1085.   Check the X server man pages for the gritty details, but the above
  1086.   should suffice for most systems.
  1087.  
  1088.  
  1089.   6.  Running XFree86
  1090.  
  1091.   With your XF86Config file configured, you're ready to fire up the X
  1092.   server and give it a spin. First, be sure that /usr/X11R6/bin is on
  1093.   your path.
  1094.  
  1095.   The command to start up XFree86 is
  1096.  
  1097.        startx
  1098.  
  1099.  
  1100.   This is a front-end to xinit (in case you're used to using xinit on
  1101.   other UNIX systems).
  1102.  
  1103.   This command will start the X server and run the commands found in the
  1104.   file .xinitrc in your home directory. .xinitrc is just a shell script
  1105.   containing X clients to run. If this file does not exist, the system
  1106.   default /usr/X11R6/lib/X11/xinit/xinitrc will be used.
  1107.  
  1108.   A standard .xinitrc file looks like this:
  1109.  
  1110.  
  1111.        #!/bin/sh
  1112.  
  1113.        xterm -fn 7x13bold -geometry 80x32+10+50 &
  1114.        xterm -fn 9x15bold -geometry 80x34+30-10 &
  1115.        oclock -geometry 70x70-7+7 &
  1116.        xsetroot -solid midnightblue &
  1117.  
  1118.        exec twm
  1119.  
  1120.  
  1121.  
  1122.  
  1123.   This script will start up two xterm clients, an oclock, and set the
  1124.   root window (background) color to midnightblue.  It will then start up
  1125.   twm, the window manager. Note that twm is executed with the shell's
  1126.   exec statement; this causes the xinit process to be replaced with twm.
  1127.   Once the twm process exits, the X server will shut down. You can cause
  1128.   twm to exit by using the root menus: depress mouse button 1 on the
  1129.   desktop background---this will display a pop up menu which will allow
  1130.   you to Exit Twm.
  1131.  
  1132.   Be sure that the last command in .xinitrc is started with exec, and
  1133.   that it is not placed into the background (no ampersand on the end of
  1134.   the line). Otherwise the X server will shut down as soon as it has
  1135.   started the clients in the .xinitrc file.
  1136.  
  1137.   Alternately, you can exit X by pressing ctrl-alt-backspace in
  1138.   combination. This will kill the X server directly, exiting the window
  1139.   system.
  1140.  
  1141.   The above is a very, very simple desktop configuration. Many wonderful
  1142.   programs and configurations are available with a bit of work on your
  1143.   .xinitrc file.  For example, the fvwm window manager will provide a
  1144.   virtual desktop, and you can customize colors, fonts, window sizes and
  1145.   positions, and so forth to your heart's content.  Although the X
  1146.   Window System might appear to be simplistic at first, it is extremely
  1147.   powerful once you customize it for yourself.
  1148.  
  1149.   If you are new to the X Window System environment, we strongly suggest
  1150.   picking up a book such as The X Window System: A User's Guide.  Using
  1151.   and configuring X is far too in-depth to cover here. See the man pages
  1152.   for xterm, oclock, and twm for clues on getting started.
  1153.  
  1154.  
  1155.   7.  Running Into Trouble
  1156.  
  1157.  
  1158.   Often, something will not be quite right when you initially fire up
  1159.   the X server. This is almost always caused by a problem in your
  1160.   XF86Config file. Usually, the monitor timing values are off, or the
  1161.   video card dot clocks set incorrectly. If your display seems to roll,
  1162.   or the edges are fuzzy, this is a clear indication that the monitor
  1163.   timing values or dot clocks are wrong. Also be sure that you are
  1164.   correctly specifying your video card chipset, as well as other options
  1165.   for the Device section of XF86Config. Be absolutely certain that you
  1166.   are using the right X server and that /usr/X11R6/bin/X is a symbolic
  1167.   link to this server.
  1168.  
  1169.   If all else fails, try to start X ``bare''; that is, use a command
  1170.   such as:
  1171.  
  1172.  
  1173.        X > /tmp/x.out 2>&1
  1174.  
  1175.  
  1176.  
  1177.  
  1178.   You can then kill the X server (using the ctrl-alt-backspace key com-
  1179.   bination) and examine the contents of /tmp/x.out. The X server will
  1180.   report any warnings or errors---for example, if your video card
  1181.   doesn't have a dot clock corresponding to a mode supported by your
  1182.   monitor.
  1183.  
  1184.   The file VideoModes.doc included in the XFree86 distribution contains
  1185.   many hints for tweaking the values in your XF86Config file.
  1186.  
  1187.   Remember that you can use ctrl-alt-numeric + and ctrl-alt-numeric - to
  1188.   switch between the video modes listed on the Modes line of the Screen
  1189.   section of XF86Config. If the highest resolution mode doesn't look
  1190.   right, try switching to lower resolutions. This will let you know, at
  1191.   least, that those parts of your X configuration are working correctly.
  1192.  
  1193.   Also, check the vertical and horizontal size/hold knobs on your
  1194.   monitor.  In many cases it is necessary to adjust these when starting
  1195.   up X. For example, if the display seems to be shifted slightly to one
  1196.   side, you can usually correct this using the monitor controls.
  1197.  
  1198.   The USENET newsgroup comp.windows.x.i386unix is devoted to discussions
  1199.   about XFree86, as is comp.os.linux.x.  It might be a good idea to
  1200.   watch that newsgroup for postings relating to your video
  1201.   configuration---you might run across someone with the same problems as
  1202.   your own.
  1203.  
  1204.  
  1205.   8.  Copyright
  1206.  
  1207.   This document is Copyright (c)1995 by Matt Welsh. This work may be
  1208.   reproduced and distributed in whole or in part, in either printed or
  1209.   electronic form, subject to the following conditions:
  1210.  
  1211.  
  1212.   1. The copyright notice and this license notice must be preserved
  1213.      complete on all complete or partial copies.
  1214.  
  1215.   2. Any translation or derivative work must be approved by the author
  1216.      in writing before distribution.
  1217.  
  1218.   3. If you distribute the Work in part, instructions for obtaining a
  1219.      complete version (in printed or electonic form) must be included,
  1220.      and a means for obtaining a complete version provided.
  1221.  
  1222.   4. Small portions may be reproduced as illustrations for reviews or
  1223.      quotes in other works without this permission notice if proper
  1224.      citation is given.
  1225.  
  1226.   Exceptions to these rules may be granted for academic purposes, write
  1227.   to the author of the Work, and ask. These restrictions are here to
  1228.   protect the authors, not to restrict you as educators and learners.
  1229.